package cn.cdeden.resource.service;

import cn.cdeden.common.oss.enumd.OssModuleType;
import cn.cdeden.resource.domain.vo.SysOssRecentlyViewedVo;
import cn.cdeden.resource.domain.bo.SysOssRecentlyViewedBo;
import cn.cdeden.common.core.utils.page.TableDataInfo;
import cn.cdeden.common.mybatis.core.page.PageQuery;
import cn.cdeden.resource.domain.vo.SysOssVo;
import cn.cdeden.resource.unified.domain.dto.OnlinePreviewInfoDto;

import java.util.Collection;

/**
 * 文件最近查看Service接口
 *
 * @author Yu.
 * @date 2024-12-09
 */
public interface ISysOssRecentlyViewedService {


    /**
     * 保存最近查看记录
     *
     * @param sysOssVo
     * @param info
     * @return
     */
    boolean save(SysOssVo sysOssVo, OnlinePreviewInfoDto info);


    /**
     * 分页查询最近查看记录
     *
     * @param bo
     * @param isSelect
     * @param pageQuery
     * @return
     */
    TableDataInfo<SysOssRecentlyViewedVo> selectRecordPage(SysOssRecentlyViewedBo bo, boolean isSelect, PageQuery pageQuery);


    /**
     * 删除最近查看记录
     *
     * @param moduleId
     * @param type
     * @param isDeleteFile
     * @param userIds      如果为空 者直接删除全部的记录   不为空 者删除指定用户的记录
     */
    Boolean deleteViewedByModuleId(Collection<String> moduleId, OssModuleType type, boolean isDeleteFile,Collection<String> userIds);



}

